package com.jade.journal.desc.field.types;

/**
 * 数组类型
 *
 * @author fengyun
 * @version Jan 11, 2003 7:50:47 PM
 */
public class ByteArrayType
    extends AbstractType
{

    private static ByteArrayType instance = new ByteArrayType();

    /**
     * 构造
     */
    private ByteArrayType()
    {
        super("ByteArray");
    }

    /**
     * 返回实例
     */
    public static ByteArrayType getInstance()
    {
        return instance;
    }

    /**
     * 将指定的数据转换成对象
     *
     * @param data 字节数组
     * @param off  起始位置
     * @param len  长度
     * @return 返回对象
     */
    public Object getObject(byte[] data, int off, int len)
    {
        byte[] bytes = new byte[len];
        System.arraycopy(data, off, bytes, 0, len);
        return bytes;
    }

    /**
     * 将指定的数据转换成对象
     *
     * @param data 字符数组
     * @param off  起始位置
     * @param len  长度
     * @return 返回对象
     */
    public Object getObject(char[] data, int off, int len)
    {
        byte[] bytes = new byte[len];
        int end = len + off;
        for (int i = off; i < end; i++) {
            bytes[i] = (byte) data[i];
        }
        return bytes;
    }
}
